#ifndef LOGGER_H_
#define LOGGER_H_

#include <string>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "Lock.h"

class Logger {

        private:
                static Logger* instance;
                Lock* lockLog;
                Lock* lockSynchro;
                Lock* lockDebug;
                Logger ( void );
                void log(std::string evento);
                void synchro(std::string evento);
                void debug(std::string evento);
                void print(std::string evento);
                void setLogFileName();
                void setLocksFiles();
                std::string getString(int value);
                std::string getTimeStamp();
                std::string getHeader();
                bool modoDebug;
                bool modoLog;
                bool modoSyn;
                bool modoCout;

        public:
                static Logger* getInstance ();
                void destruir ();
                void loggearLog(std::string evento);
                void loggearSynchro(std::string evento);
                void loggearDebug(std::string evento);
                void loggearCout(std::string evento);
                void setFlags(bool modoDebug, bool modoLog, bool modoSyn, bool modoCout);
};

#endif /*LOGGER_H_*/
